package com.jsd.demo.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel("收银台支付参数")
public class PayParamVO {

    /**
     * 商户ID，由统一支付分配
     */
    @ApiModelProperty(value = "商户ID，由统一支付分配")
    private String merchantId;

    /**
     * 商户订单号，也是实际支付订单号
     */
    @ApiModelProperty(value = "商户订单号，也是实际支付订单号")
    private String merchantOrderId;

    /**
     * 支付金额，单位为分
     */
    @ApiModelProperty(value = "支付金额，单位为分")
    private String amount;

    /**
     * 微信openid
     */
    @ApiModelProperty(value = "微信openid")
    private String openid;

    /**
     * 支付宝userid
     */
    @ApiModelProperty(value = "支付宝userid")
    private String userId;

    /**
     * 分账类型(1:带分账信息 2:不带分账信息)
     */
//    @ApiModelProperty(value = "分账类型(1:带分账信息 2:不带分账信息)")
//    private String legderType;

    /**
     * 清分系统应用ID
     */
//    @ApiModelProperty(value = "清分系统应用ID")
//    private String appId;

    /**
     * 清分信息
     */
//    @ApiModelProperty(value = "清分信息")
//    private String sersuborder;

    /**
     * 清分结束后通知商户系统的URL
     */
//    @ApiModelProperty(value = "清分结束后通知商户系统的URL")
//    private String bankClearNotifyUrl;

    /**
     * 有效期数量，数字，与订单有效期单位;同时构成订单有效期
     */
    @ApiModelProperty(value = "有效期数量，数字，与订单有效期单位;同时构成订单有效期")
    private String period;

    /**
     * 只能取以下枚举值00- 分01- 小时02- 日03- 月
     */
    @ApiModelProperty(value = "只能取以下枚举值00- 分01- 小时02- 日03- 月")
    private String periodUnit;

    /**
     * 同步回调地址
     */
    @ApiModelProperty(value = "同步回调地址")
    private String callbackUrl;

    /**
     * 异步回调地址
     */
    @ApiModelProperty(value = "异步回调地址")
    private String notifyUrl;

    /**
     * 商品名称
     */
    @ApiModelProperty(value = "商品名称")
    private String productName;

    /**
     * 发起支付设备IP
     */
    @ApiModelProperty(value = "发起支付设备IP")
    private String clientIp;

    /**
     * 订单创建时间
     */
    @ApiModelProperty(value = "订单创建时间")
    private String orderCreateDateTime;

    /**
     * 签名数据
     */
//    @ApiModelProperty(value = "签名数据")
//    private String hmac;
}
